This invention relates generally to data transmission systems and particularly to data transmission systems that use MPEG 2 encoded data streams.
The environment of the invention is a plurality of program sources, each of which transmits an MPEG (Motion Picture Experts Group) 2 transport stream, representing a single program running at a data or byte rate that is substantially constant, but different from the byte rate of any other program. Further, the system is entirely asynchronous, i.e. the clock signal that generates the byte rate of any particular program is not locked to the clock signal of any other program. The problem is to multiplex the various streams of data onto a single path that has a fixed byte rate that is not locked to any of the program clock signals. The multiplexing arrangement should ideally be optimized for minimal jitter where jitter is defined as the variation in delay experienced by any program in the transmission of its data packets through the multiplex link. Jitter is undesirable because it requires the addition of expensive buffer memory in the receiver. The MPEG transmitter assumes that the transmitted data will undergo a constant delay on its way to the receiver. The MPEG decoder in the receiver will work properly only if it is supplied with data at a constant rate. Any delay variation in the transmission path is equivalent to a non constant delay and if it occurs, added buffer memory is required. This memory is used as an elastic buffer to smooth the received jittered data to the near constant rate required by the MPEG decoding circuitry. As jitter increases, the need for additional buffer memory increases.
The MPEG 2 type data transport system is a well-defined entity, composed of data packets, each containing 188 bytes. The prior art already has a product that multiplexes a number of MPEG 2 transport streams of differing packet rates, the clocks of which are locked together to a single stream in which the byte rate is also locked to those of the input signals. The invention claimed in the copending application is directed to a system that will accomplish the multiplexing task with individual transport streams and a common multiplexing stream having different byte (or packet) rates and completely asynchronous clock signals.
In the MPEG transport stream special program clock reference (PCR) packets are inserted on an arbitrary basis, but no less than every 0.1 seconds. The PCR packet includes a PCR time base consisting of 48 bits (six bytes), which define a time stamp. The time stamp indicates the relative time that the PCR packet was sent by the program source. The PCR packets have headers and a flag to enable their recovery at the receiver set top box (STB) where they are used to synchronize the STB clock to the source clock. The "base" portion of the time stamp consists of the first 33 bits which measure time in "90 KHz ticks" which is an increment of time for one cycle of a 90 KHz signal. Constant delays experienced by the packets in a program data stream are not of importance since they do not affect the relative PCR time base values. Non uniform delays or jitter, however, disrupt the time base relationships and make the task of clock recovery at the STB more difficult, if not impossible in some cases. At the very least, uncompensated non uniform delay in the PCR time bases requires more memory in the STB, which is expensive. The present invention compensates the PCR packets for the non uniform delay introduced by multiplexing.